package App.OOSerVice.service.thread;

import App.Model.ArisuDB;
import App.Model.Tool.DosTool;

//额外的线程对服务器下达指示(不应该加入线程池)
public class ServiceFrameThread extends Thread {


    @Override
    public void run() {
        System.out.println("服务器启动");
        boolean loop = true;
        while (loop) {
            System.out.println("-------服务器操作界面-------");
            System.out.println("-- * : 为指定用户改名");
            System.out.println("-- 1 : 显示所有用户");
            System.out.println("-- 2 : 查询在线用户");
            System.out.println("-- 3 : 推送消息");//可以指定个人或者全体
            System.out.println("-- 4 : 监听所有用户消息");//后续通过一个static状态可以实现
            System.out.println("-- 5 : 监听指定用户消息");//后续通过一个static状态可以实现
            System.out.println("-- 6 : 规范所有用户命名");
            System.out.println("-- 0 : 关闭服务器");//同时保存ArisuDB,向所有用户发送关闭命令,删除线程池中的所有线程
            String key = DosTool.readString(1);//可以考虑用dos命令操作
            switch (key) {
                case "*"://
                    String userId = DosTool.readString(100);
                    ArisuDB.changeUserPwd(userId);
                    break;
                case "1"://
                    ArisuDB.showAllUser();
                    break;
                case "2"://
                    System.out.println("功能未开发!!!");
                    break;
                case "3"://
                    System.out.println("功能未开发!!!");
                    break;
                case "4"://
                    System.out.println("功能未开发!!!");
                    break;
                case "5"://
                    System.out.println("功能未开发!!!");
                    break;
                case "6"://用处小
                    System.out.println("服务器正在规范所有用户的用户名");
                    ArisuDB.reNameAllUser();
                    break;
                case "0"://
                    System.out.println("功能未开发!!!");
                    ArisuDB.saveNewMessageDataToFile();
                    ArisuDB.saveUserMapToFile();

                    //提醒用户断开socket
                    break;
                default:
                    System.out.println("命令无效");
                    break;
            }
        }
    }
}
